package com.ggqq.book.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * CORS，全称Cross-Origin Resource Sharing [1]  ，是一种允许当前域（domain）的资源（比如html/js/web service）
 * 被其他域（domain）的脚本请求访问的机制，通常由于同域安全策略（the same-origin security policy）浏览器会禁止这种跨域请求
 * */
@Configuration
public class CrosConfig implements WebMvcConfigurer {

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**") // 设置允许跨域的路径
      .allowedOriginPatterns("*")// 设置允许跨域请求的域名
      .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")// 设置允许的方法
      .allowCredentials(true)  // 是否允许证书
      .maxAge(3600)// 跨域允许时间
      .allowedHeaders("*");// 设置允许的header属性
  }
}
